package br.com.sgpv2.service.pessoa;

import java.util.List;

import br.com.sgpv2.controler.NegocioExeception;
import br.com.sgpv2.entity.pessoa.Pessoa;
import br.com.sgpv2.entity.pessoa.PessoaDTO;
import br.com.sgpv2.entity.pessoa.endereco.Cidade;
import br.com.sgpv2.entity.pessoa.endereco.Estado;
import br.com.sgpv2.entity.pessoa.endereco.Pais;

public interface PessoaService {

	Pessoa salvar(Pessoa pessoa) throws Exception;

	void alterar(Pessoa pessoa);

	List<Pessoa> listar() throws Exception;

	void remover(Pessoa pessoa) throws Exception;

	List<Cidade> consultarCidadesPorEstado(String estado);

	List<Estado> consultarEstadosPorPais(Pais pais);

	List<Pais> consultarPaises();

	List<PessoaDTO> consultarPessoaDTO();

	Pessoa buscar(Integer pk) throws NegocioExeception;

	List<PessoaDTO> consultarPessoasDTOPorFiltro(String nome, String cpf,
			String identidade);

	Pais buscarPaisPorNome(String paisTransiente);

	Estado buscarEstadoPorNome(String estadoTransiente);

	Cidade buscarCidadePorNome(String cidadeTransiente);

}
